Namespace.Use("Application.Sensor.Query", function(ns) {
    //
    //  Imports.
    //
    var Utility = Namespace.Import("Base.Utility");

    //
    //  Classes.
    //
    var QueryParameter = Polymorphic.Create(
        [String, Array],
        function(device_id, routes) {
            //  Check the type.
            if (!Utility.CheckArrayItemType(routes, Number)) {
                throw "Invalid parameter.";
            }

            //
            //  Public methods.
            //
            this.GetDeviceID = function() {
                return device_id;
            };
            this.GetRoutes = function() {
                return routes;
            };
        }
    );

    //  Export public APIs / classes.
    Namespace.Export(ns, "QueryParameter", QueryParameter);
});
